package de.gof.ppstool.fertigungsverwaltung.db;

import java.io.Serializable;
import javax.persistence.*;

/**
 * The persistent class for the fehlendeteile database table.
 */
@Entity
@NamedQueries({
		@NamedQuery(name = Fehlendeteile.FINDE_ALLE_FEHLENDETEILE, query = "SELECT DISTINCT ft FROM Fehlendeteile ft"),
		@NamedQuery(name = Fehlendeteile.FINDE_FEHLENDETEILE_NACH_FEHLENDETEILE_ID, query = "SELECT DISTINCT ft FROM Fehlendeteile ft WHERE ft.fehlendeteileId = :"
				+ Fehlendeteile.PARAM_FEHLENDETEILE_ID) })
@Table(name = "fehlendeteile")
public class Fehlendeteile implements Serializable {
	private static final long serialVersionUID = 1L;
	static final String FINDE_ALLE_FEHLENDETEILE = "findeAlleFehlendeTeile";
	static final String FINDE_FEHLENDETEILE_NACH_FEHLENDETEILE_ID = "findeFehlendeTeileNachFehlendeteileId";
	static final String PARAM_FEHLENDETEILE_ID = "fehlendeteile_id";
	/**
	 * +++++++++++++++++++++++++++++++++++++++++++++++
	 * ++++ Attribute von der Klasse Fehlendeteile +++
	 * +++++++++++++++++++++++++++++++++++++++++++++++
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "teil_sequence_name")
	@SequenceGenerator(name = "fehlendeteile_sequence_name", sequenceName = "fehlendeteile_fehlendeteile_id_seq", allocationSize = 1)
	@Column(name = "fehlendeteile_id", unique = true, nullable = false)
	private Long fehlendeteileId;
	@Column(length = 2147483647)
	private String missingpart;
	@Column(length = 2147483647)
	private String anzahl;
	@Column(length = 2147483647)
	private String firstbatch;
	@Column(length = 2147483647)
	private String lastbatch;
	//bi-directional many-to-one association to Fertigungsauftragsposition
	@ManyToOne
	@JoinColumns({
			@JoinColumn(name = "fertigungsauftrag_id", referencedColumnName = "fertigungsauftrag_id", nullable = false),
			@JoinColumn(name = "fertigungsauftragsposition_id", referencedColumnName = "fertigungsauftragsposition_id", nullable = false) })
	private Fertigungsauftragsposition fertigungsauftragsposition;

	/**
	 * +++++++++++++++++++++++++++++++++++++++++++++++
	 * +++++ Konstruktoren der Klasse Fehlendeteile ++
	 * +++++++++++++++++++++++++++++++++++++++++++++++
	 */
	public Fehlendeteile() {
		super();
	}

	public Fehlendeteile(Long fehlendeteileId, String anzahl,
			String firstbatch, String lastbatch,
			Fertigungsauftragsposition fertigungsauftragsposition) {
		super();
		this.fehlendeteileId = fehlendeteileId;
		this.anzahl = anzahl;
		this.firstbatch = firstbatch;
		this.lastbatch = lastbatch;
		this.fertigungsauftragsposition = fertigungsauftragsposition;
	}

	/**
	 * +++++++++++++++++++++++++++++	
	 * +++++ Getter und Setter +++++
	 * +++++++++++++++++++++++++++++
	 */
	public String getAnzahl() {
		return this.anzahl;
	}

	public void setAnzahl(String anzahl) {
		this.anzahl = anzahl;
	}

	public String getFirstbatch() {
		return this.firstbatch;
	}

	public void setFirstbatch(String firstbatch) {
		this.firstbatch = firstbatch;
	}

	public String getLastbatch() {
		return this.lastbatch;
	}

	public void setLastbatch(String lastbatch) {
		this.lastbatch = lastbatch;
	}

	public Fertigungsauftragsposition getFertigungsauftragsposition() {
		return this.fertigungsauftragsposition;
	}

	public void setFertigungsauftragsposition(
			Fertigungsauftragsposition fertigungsauftragsposition) {
		this.fertigungsauftragsposition = fertigungsauftragsposition;
	}

	public void setFehlendeteileId(Long fehlendeteileId) {
		this.fehlendeteileId = fehlendeteileId;
	}

	public Long getFehlendeteileId() {
		return fehlendeteileId;
	}

	public void setMissingpart(String missingpart) {
		this.missingpart = missingpart;
	}

	public String getMissingpart() {
		return missingpart;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((anzahl == null) ? 0 : anzahl.hashCode());
		result = prime * result
				+ ((fehlendeteileId == null) ? 0 : fehlendeteileId.hashCode());
		result = prime * result
				+ ((firstbatch == null) ? 0 : firstbatch.hashCode());
		result = prime * result
				+ ((lastbatch == null) ? 0 : lastbatch.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;

		if (obj == null)
			return false;

		if (getClass() != obj.getClass())
			return false;

		Fehlendeteile other = (Fehlendeteile) obj;
		if (anzahl == null) {
			if (other.anzahl != null)
				return false;

		} else if (!anzahl.equals(other.anzahl))
			return false;

		if (fehlendeteileId == null) {
			if (other.fehlendeteileId != null)
				return false;

		} else if (!fehlendeteileId.equals(other.fehlendeteileId))
			return false;

		if (firstbatch == null) {
			if (other.firstbatch != null)
				return false;

		} else if (!firstbatch.equals(other.firstbatch))
			return false;

		if (lastbatch == null) {
			if (other.lastbatch != null)
				return false;

		} else if (!lastbatch.equals(other.lastbatch))
			return false;

		return true;
	}

	@Override
	public String toString() {
		return "Fehlendeteile [fehlendeteileId=" + fehlendeteileId
				+ ", anzahl=" + anzahl + ",  firstbatch=" + firstbatch
				+ ", lastbatch=" + lastbatch + "]";
	}

}
